using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("PegUI")]
	public class PegUI : MonoBehaviour
	{
		public enum Layer
		{
			MANUAL,
			RELATIVE_TO_PARENT,
			BACKGROUND,
			HUD,
			DIALOG
		}

		public enum SWIPE_DIRECTION
		{
			RIGHT,
			LEFT
		}

		public Camera orthographicUICam => method_3<Camera>("orthographicUICam");

		public static List<GameLayer> HIT_TEST_PRIORITY => MonoClass.smethod_7<Class250<GameLayer>>(TritonHs.MainAssemblyPath, "", "PegUI", "HIT_TEST_PRIORITY")?.method_25();

		public Camera m_UICam => method_3<Camera>("m_UICam");

		public PegUIElement m_prevElement => method_3<PegUIElement>("m_prevElement");

		public PegUIElement m_currentElement => method_3<PegUIElement>("m_currentElement");

		public PegUIElement m_mouseDownElement => method_3<PegUIElement>("m_mouseDownElement");

		public float m_mouseDownTimer => method_2<float>("m_mouseDownTimer");

		public float m_lastClickTimer => method_2<float>("m_lastClickTimer");

		public Vector3 m_lastClickPosition => method_2<Vector3>("m_lastClickPosition");

		public static float PRESS_VS_TAP_TOLERANCE => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "PegUI", "PRESS_VS_TAP_TOLERANCE");

		public static float DOUBLECLICK_TOLERANCE => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "PegUI", "DOUBLECLICK_TOLERANCE");

		public static float DOUBLECLICK_COUNT_DISABLED => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "PegUI", "DOUBLECLICK_COUNT_DISABLED");

		public static float MOUSEDOWN_COUNT_DISABLED => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "PegUI", "MOUSEDOWN_COUNT_DISABLED");

		public List<PegUICustomBehavior> m_customBehaviors => method_3<Class271<PegUICustomBehavior>>("m_customBehaviors")?.method_25();

		public bool m_hasFocus => method_2<bool>("m_hasFocus");

		public bool m_uguiActive => method_2<bool>("m_uguiActive");

		public PegUI(IntPtr address, string className)
			: base(address, className)
		{
		}

		public PegUI(IntPtr address)
			: this(address, "PegUI")
		{
		}

		public static PegUI Get()
		{
			return MonoClass.smethod_15<PegUI>(TritonHs.MainAssemblyPath, "", "PegUI", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void Update()
		{
			method_8("Update");
		}

		public PegUIElement GetMousedOverElement()
		{
			return method_14<PegUIElement>("GetMousedOverElement", Array.Empty<object>());
		}

		public PegUIElement GetPrevMousedOverElement()
		{
			return method_14<PegUIElement>("GetPrevMousedOverElement", Array.Empty<object>());
		}

		public void SetInputCamera(Camera cam)
		{
			method_8("SetInputCamera", cam);
		}

		public PegUIElement FindHitElement()
		{
			return method_14<PegUIElement>("FindHitElement", Array.Empty<object>());
		}

		public void DoMouseDown(PegUIElement element, Vector3 mouseDownPos)
		{
			method_8("DoMouseDown", element, mouseDownPos);
		}

		public void RemoveAsMouseDownElement(PegUIElement element)
		{
			method_8("RemoveAsMouseDownElement", element);
		}

		public void MouseInputUpdate()
		{
			method_8("MouseInputUpdate");
		}

		public bool UpdateMouseLeftClick()
		{
			return method_11<bool>("UpdateMouseLeftClick", Array.Empty<object>());
		}

		public bool UpdateMouseLeftHold()
		{
			return method_11<bool>("UpdateMouseLeftHold", Array.Empty<object>());
		}

		public bool UpdateMouseRightClick()
		{
			return method_11<bool>("UpdateMouseRightClick", Array.Empty<object>());
		}

		public void UpdateMouseOver()
		{
			method_8("UpdateMouseOver");
		}

		public void OnAppFocusChanged(bool focus, object userData)
		{
			method_8("OnAppFocusChanged", focus, userData);
		}

		public void OnUGUIActiveChanged(bool active)
		{
			method_8("OnUGUIActiveChanged", active);
		}

		public void OnMouseOnOrOffScreen(bool onScreen)
		{
			method_8("OnMouseOnOrOffScreen", onScreen);
		}

		public void RegisterCustomBehavior(PegUICustomBehavior behavior)
		{
			method_8("RegisterCustomBehavior", behavior);
		}

		public void UnregisterCustomBehavior(PegUICustomBehavior behavior)
		{
			method_8("UnregisterCustomBehavior", behavior);
		}
	}
}
